package com.junzhiit.nengji.api.service;

import com.junzhiit.nengji.api.web.vo.ResultVO;
import com.junzhiit.nengji.api.web.vo.SystemTypeConditionVO;
import com.junzhiit.nengji.api.web.vo.SystemTypeEditVO;
import com.junzhiit.nengji.model.SystemType;

public interface SystemTypeService {

	/**
	 * TODO 查詢所有的信息分类
	 *
	 * @author DlamLiu
	 * @time 2018年6月21日 下午2:06:53
	 * @return List<InfoCategory>
	 * 
	 */
	public ResultVO findAll();
	
	/**
	 * TODO 查询所有的信息分类的名称
	 * @author DlamLiu
	 * @time 2018年6月22日 上午9:07:09
	 * @return ResultVO
	 * 
	 */
	public ResultVO findAllName();
	
	/**
	 * TODO 查询所有的信息分类按照等级分类好
	 * @author DlamLiu
	 * @time 2018年6月22日 上午9:07:49
	 * @return ResultVO
	 * 
	 */
	public ResultVO findAllGrading();
	
	/**
	 * TODO 查询所有的信息分类的名称，按照的等级分类好
	 * 		多次递归分类出数据性能上有影响
	 * @author Qjen
	 * @time 2018年6月22日 上午9:08:34
	 * @return ResultVO
	 * 
	 */
	public ResultVO findAllNameGrading();

	/**
	 * TODO 按照条件查询商品分类
	 * @author DlamLiu
	 * @time 2018年6月21日 下午2:07:28
	 * @return List<InfoCategory>
	 * 
	 */
	
	/**
	 * 
	 * TODO 上传图片
	 * 
	 * @author FebRosy
	 * @time 2018年4月3日 上午10:44:49
	 * @return ResultVO
	 */
	public ResultVO updateTypeImage(SystemTypeEditVO typeEditVO);
	
	/**
	 * 
	 * TODO 删除分类图片
	 * 
	 * @author FebRosy
	 * @time 2018年4月3日 下午1:52:07
	 * @return ResultVO
	 */
	
	/**
	 * TODO	跟据类型ID查询该类型下的商品
	 * @author DlamLiu
	 * @time 2018年7月3日 下午8:12:08
	 * @return ResultVO
	 * 
	 */
	public ResultVO getGoodsByType(String id);
	
	public ResultVO deleteTypeImage(String id);
	
	public ResultVO getAllByCondition(SystemTypeConditionVO type);

	public ResultVO getMaxCode(String parentId);

	public ResultVO getMaxFullCode(String parentId);

	public ResultVO getMaxSort(String parentId);
	
	public ResultVO add(SystemType vo);
	
	public ResultVO delete(String id);
	
	public ResultVO update(SystemType type);
	
	public ResultVO findbyid(String id);
	
}
